package com.itcast.gateway.service;

import org.springframework.cloud.gateway.route.RouteDefinition;
import org.springframework.context.ApplicationEventPublisherAware;

/**
 * 动态路由管理
 * @author zheng.zhang
 */
public interface DynamicRouteService extends ApplicationEventPublisherAware {

    /**
     * 刷新路由表
     * @return 是否成功
     */
    boolean refreshRoute();

    /**
     * 添加路由实体类
     * @param routeDefinition 路由定义
     * @return 添加结果
     */
    boolean addRoute(RouteDefinition routeDefinition);

    /**
     * 更新路由实体类
     * @param definition 路由定义
     * @return 是否成功
     */
    boolean updateRoute(RouteDefinition definition);

    /**
     * 删除路由实体
     * @param id 路由id
     * @return 是否成功
     */
    boolean deleteRoute(String id);
}
